unit uAcomProd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, FMTBcd, DB, DBClient, Provider, SqlExpr, Grids, Wwdbigrd,
  Wwdbgrid, StdCtrls, Buttons, ComCtrls, EditDate, ExtCtrls, wwSpeedButton,
  wwDBNavigator, wwclearpanel, wwdbdatetimepicker;

type
  TfAcomProd = class(TForm)
    SpAcomProd: TSQLStoredProc;
    sds: TSQLDataSet;
    dsp: TDataSetProvider;
    cds: TClientDataSet;
    DataSource1: TDataSource;
    Panel1: TPanel;
    btnProcurar: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    cdsSEMANA: TStringField;
    cdsCLIENTE: TStringField;
    cdsRAZAO_SOCIAL: TStringField;
    cdsPRODUTO: TStringField;
    cdsPROD_CLIENTE: TStringField;
    cdsDESCRICAO: TStringField;
    cdsUM: TStringField;
    cdsPROD_HORA: TFMTBCDField;
    cdsHORA_MAQ: TFMTBCDField;
    cdsMOD: TFMTBCDField;
    cdsCCUSTO: TStringField;
    cdsCELULA: TStringField;
    cdsMAQUINA: TStringField;
    cdsSALDO_PA: TFMTBCDField;
    cdsSALDO_AUDIT: TFMTBCDField;
    cdsSEM0: TFMTBCDField;
    cdsS0_HORA_MAQ: TFMTBCDField;
    cdsS0_HORA_HOM: TFMTBCDField;
    cdsS0_SALDO: TFMTBCDField;
    cdsSEM1: TFMTBCDField;
    cdsS1_HORA_MAQ: TFMTBCDField;
    cdsS1_HORA_HOM: TFMTBCDField;
    cdsS1_SALDO: TFMTBCDField;
    cdsSEM2: TFMTBCDField;
    cdsS2_HORA_MAQ: TFMTBCDField;
    cdsS2_HORA_HOM: TFMTBCDField;
    cdsS2_SALDO: TFMTBCDField;
    cdsSEM3: TFMTBCDField;
    cdsS3_HORA_MAQ: TFMTBCDField;
    cdsS3_HORA_HOM: TFMTBCDField;
    cdsS3_SALDO: TFMTBCDField;
    cdsSEM4: TFMTBCDField;
    cdsS4_HORA_MAQ: TFMTBCDField;
    cdsS4_HORA_HOM: TFMTBCDField;
    cdsS4_SALDO: TFMTBCDField;
    cdsSEM5: TFMTBCDField;
    cdsS5_HORA_MAQ: TFMTBCDField;
    cdsS5_HORA_HOM: TFMTBCDField;
    cdsS5_SALDO: TFMTBCDField;
    cdsSEM6: TFMTBCDField;
    cdsS6_HORA_MAQ: TFMTBCDField;
    cdsS6_HORA_HOM: TFMTBCDField;
    cdsS6_SALDO: TFMTBCDField;
    wwDBGrid1: TwwDBGrid;
    EDtIni: TEditDate;
    EDtFim: TEditDate;
    cdsFAT_D1: TFMTBCDField;
    cdsFAT_D2: TFMTBCDField;
    cdsFAT_D3: TFMTBCDField;
    cdsFAT_D4: TFMTBCDField;
    cdsFAT_D5: TFMTBCDField;
    SaveDialog1: TSaveDialog;
    procedure btnProcurarClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fAcomProd: TfAcomProd;

implementation

uses udm;

{$R *.dfm}

procedure TfAcomProd.btnProcurarClick(Sender: TObject);
begin
  cds.Close;
  cds.CommandText := 'SELECT  * FROM V_BIPROD';
      { ' FROM (SELECT semana, cliente, razao_social, produto, prod_cliente, '+
                '    descricao, um, prod_hora, hora_maq, MOD, ccusto, celula, ' +
                '    maquina, saldo_pa, saldo_audit, sem0, ' +
                '    round((sem0 * hora_maq) s0_hora_maq, '+
                '    to_char(sem0 * hora_maq * MOD) s0_hora_hom, '+
                '    sem0 - saldo_pa - saldo_audit s0_saldo, sem1, '+
                '    sem1 * hora_maq s1_hora_maq,'+
                '    sem1 * hora_maq * MOD s1_hora_hom, '+
                '    (sem1 + (sem0 - saldo_pa - saldo_audit)) s1_saldo, sem2, '+
                '    sem2 * hora_maq s2_hora_maq,'+
                 '   sem2 * hora_maq * MOD s2_hora_hom,'+
                 '   (sem1 + sem2 + (sem0 - saldo_pa - saldo_audit)'+
                 '   ) s2_saldo, sem3, sem3 * hora_maq s3_hora_maq,'+
                 '   sem3 * hora_maq * MOD s3_hora_hom,'+
                 '   (sem1 + sem2 + sem3 + (sem0 - saldo_pa - saldo_audit)'+
                 '   ) s3_saldo,'+
                 '   sem4, sem4 * hora_maq s4_hora_maq,'+
                 '   sem4 * hora_maq * MOD s4_hora_hom,'+
                 '   (sem1 + sem2 + sem3 + sem4'+
                 '    + (sem0 - saldo_pa - saldo_audit)'+
                 '   ) s4_saldo,'+
                 '   sem5, sem5 * hora_maq s5_hora_maq,'+
                 '   sem5 * hora_maq * MOD s5_hora_hom,'+
                 '   (  sem1'+
                 '    + sem2'+
                 '    + sem3'+
                 '    + sem4'+
                 '    + sem5'+
                 '    + (sem0 - saldo_pa - saldo_audit)'+
                 '   ) s5_saldo,'+
                 '   sem6, sem6 * hora_maq s6_hora_maq,'+
                 '   sem6 * hora_maq * MOD s6_hora_hom,'+
                 '   (  sem1                       '+
                 '    + sem2                       '+
                 '    + sem3                       '+
                 '    + sem4                       '+
                 '    + sem5                       '+
                 '    + sem6                       '+
                 '    + (sem0 - saldo_pa - saldo_audit)'+
                 '    ) s6_saldo                   '+
                 ' FROM l_biprod)                  '+
                 '   ORDER BY razao_social, produto';}
  SPAcomProd.ParamByName('DTINI').AsString := EDtIni.Text;
  SPAcomProd.ParamByName('DTFIM').AsString := EDtFim.Text;
  SPAcomProd.ExecProc;
  cds.Open;
end;

procedure TfAcomProd.BitBtn1Click(Sender: TObject);
begin
  if (SaveDialog1.Execute) then
    wwDBGrid1.ExportOptions.FileName := SaveDialog1.FileName;
  wwdbgrid1.ExportOptions.Save;
  MessageDlg('Arquivo exportado com sucesso.',
          mtConfirmation, [mbOk],0);
end;

end.
